package day01;

// No128.最长连续序列
// 给定一个未排序的整数数组 nums ，找出数字连续的最长序列（不要求序列元素在原数组中连续）的长度。
// 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

import java.util.HashSet;

public class No128 {
    public int longestConsecutive(int[] nums) {
        if(nums.length == 0) return 0;

        HashSet<Integer> hs = new HashSet<>();
        for(int i : nums){
            hs.add(i);
        }

        int maxLen = 1;
        for(int i : hs){
            if(hs.contains(i-1)){
                continue;
            }
            int nowLen = 1;
            int nextNumber = i+1;
            while(hs.contains(nextNumber)){
                nowLen++;
                nextNumber++;
            }
            maxLen = (maxLen > nowLen ? maxLen : nowLen);
        }
        return maxLen;
    }
}
